// Kinda wish this wasn't allowed. Seems like asking for trouble.

const type = 1;
const newtype = 1;
const namespace = 1;

// 🤦
const int int = 1;

const bool = 1;
const float = 1;
const int = 1;
const string = 1;
const arraykey = 1;
const void = 1;
const nonnull = 1;
const null = 1;
const mixed = 1;
const dynamic = 1;
const noreturn = 1;

const array = 1;
const varray = 1;
const darray = 1;
const vec = 1;
const dict = 1;
const keyset = 1;

const tuple = 1;
const shape = 1;

// Source: https://github.com/facebook/hhvm/blob/d7dc631ce/hphp/hack/test/full_fidelity/cases/keyword_as_const.php

const abstract = 1;
const and = 1;
const array = 1;
const arraykey = 1;
const as = 1;
const attribute = 1;
const binary = 1;
const bool = 1;
const boolean = 1;
const break = 1;
const case = 1;
const catch = 1;
const category = 1;
const children = 1;
const class = 1;
const classname = 1;
const clone = 1;
// const const = 1; // "Notice: Constant const already defined"
const continue = 1;
const coroutine = 1;
const darray = 1;
const declare = 1;
const default = 1;
const dict = 1;
const do = 1;
const double = 1;
const echo = 1;
const else = 1;
const elseif = 1;
const empty = 1;
const enddeclare = 1;
const endfor = 1;
const endforeach = 1;
const endif = 1;
const endswitch = 1;
const endwhile = 1;
const enum = 1;
// const eval = 1; // Unexpected token
const extends = 1;
const fallthrough = 1;
const false = 1;
const final = 1;
const finally = 1;
const float = 1;
const for = 1;
const foreach = 1;
const from = 1;
const global = 1;
const goto = 1;
const if = 1;
const implements = 1;
const include = 1;
const include_once = 1;
const inout = 1;
const instanceof = 1;
const insteadof = 1;
const int = 1;
const integer = 1;
const interface = 1;
const is = 1;
// const isset = 1; // Unexpected token
const keyset = 1;
const let = 1;
const list = 1;
const mixed = 1;
const namespace = 1;
const new = 1;
const newtype = 1;
const noreturn = 1;
const null = 1;
const num = 1;
const object = 1;
const or = 1;
const parent = 1;
const print = 1;
const private = 1;
const protected = 1;
const public = 1;
const real = 1;
const require = 1;
const require_once = 1;
const resource = 1;
const return = 1;
const self = 1;
const shape = 1;
const static = 1;
const string = 1;
const super = 1;
const suspend = 1;
const switch = 1;
const this = 1;
const throw = 1;
const trait = 1;
const try = 1;
const true = 1;
const type = 1;
const unset = 1;
const use = 1;
const using = 1;
const var = 1;
const varray = 1;
const vec = 1;
const void = 1;
const where = 1;
const while = 1;
const xor = 1;
const yield = 1;

// Source: https://github.com/facebook/hhvm/blob/1101ea73b0b4693e858235aa54611e12408f9edc/hphp/hack/test/full_fidelity/cases/keyword_as_const_w_ty_spec.php

const int abstract = 1;
const int and = 1;
const int array = 1;
const int arraykey = 1;
const int as = 1;
const int attribute = 1;
const int binary = 1;
const int bool = 1;
const int boolean = 1;
const int break = 1;
const int case = 1;
const int catch = 1;
const int category = 1;
const int children = 1;
const int class = 1;
const int classname = 1;
const int clone = 1;
// const int const int = 1; // "Notice: Constant const int already defined"
const int continue = 1;
const int coroutine = 1;
const int darray = 1;
const int declare = 1;
const int default = 1;
const int dict = 1;
const int do = 1;
const int double = 1;
const int echo = 1;
const int else = 1;
const int elseif = 1;
const int empty = 1;
const int enddeclare = 1;
const int endfor = 1;
const int endforeach = 1;
const int endif = 1;
const int endswitch = 1;
const int endwhile = 1;
const int enum = 1;
// const int eval = 1; // Unexpected token
const int extends = 1;
const int fallthrough = 1;
const int false = 1;
const int final = 1;
const int finally = 1;
const int float = 1;
const int for = 1;
const int foreach = 1;
const int from = 1;
const int global = 1;
const int goto = 1;
const int if = 1;
const int implements = 1;
const int include = 1;
const int include_once = 1;
const int inout = 1;
const int instanceof = 1;
const int insteadof = 1;
const int int = 1;
const int integer = 1;
const int interface = 1;
const int is = 1;
// const int isset = 1; // Unexpected token
const int keyset = 1;
const int let = 1;
const int list = 1;
const int mixed = 1;
const int namespace = 1;
const int new = 1;
const int newtype = 1;
const int noreturn = 1;
const int null = 1;
const int num = 1;
const int object = 1;
const int or = 1;
const int parent = 1;
const int print = 1;
const int private = 1;
const int protected = 1;
const int public = 1;
const int real = 1;
const int require = 1;
const int require_once = 1;
const int resource = 1;
const int return = 1;
const int self = 1;
const int shape = 1;
const int static = 1;
const int string = 1;
const int super = 1;
const int suspend = 1;
const int switch = 1;
const int this = 1;
const int throw = 1;
const int trait = 1;
const int try = 1;
const int true = 1;
const int type = 1;
const int unset = 1;
const int use = 1;
const int using = 1;
const int var = 1;
const int varray = 1;
const int vec = 1;
const int void = 1;
const int where = 1;
const int while = 1;
const int xor = 1;
const int yield = 1;
